home *** CD-ROM | disk | FTP | other *** search
/ C++ für Kids / C++ for kids.iso / SETUP / US / CBUILDER / DATA.Z / DB.HPP < prev    next >
C/C++ Source or Header  |  1997-02-13  |  60KB  |  1,366 lines

  1. //----------------------------------------------------------------------------
  2. // DB.hpp - bcbdcc32 generated hdr (DO NOT EDIT) rev: 0
  3. // From: DB.pas
  4. //----------------------------------------------------------------------------
  5. #ifndef DBHPP
  6. #define DBHPP
  7. //----------------------------------------------------------------------------
  8. #include <Classes.hpp>
  9. #include <Bde.hpp>
  10. #include <Windows.hpp>
  11. #include <SysUtils.hpp>
  12. #include <System.hpp>
  13. #pragma warn -par
  14. #pragma warn -hid 
  15. #pragma warn -inl
  16.  
  17. namespace Db
  18. {
  19. //-- type declarations -------------------------------------------------------
  20. typedef Bde::FLDDesc TFieldDescList[1024];
  21.  
  22. typedef TFieldDescList *PFieldDescList;
  23.  
  24. typedef Bde::IDXDesc TIndexDescList[64];
  25.  
  26. typedef TIndexDescList *PIndexDescList;
  27.  
  28. class __declspec(delphiclass) EDatabaseError;
  29. class __declspec(pascalimplementation) EDatabaseError : public Sysutils::Exception
  30. {
  31.     typedef Sysutils::Exception inherited;
  32.     
  33. public:
  34.     /* Exception.Create */ __fastcall EDatabaseError(const System::AnsiString Msg) : Sysutils::Exception(
  35.         Msg) { }
  36.     /* Exception.CreateFmt */ __fastcall EDatabaseError(const System::AnsiString Msg, const System::TVarRec 
  37.         * Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
  38.     /* Exception.CreateRes */ __fastcall EDatabaseError(int Ident) : Sysutils::Exception(Ident) { }
  39.     /* Exception.CreateResFmt */ __fastcall EDatabaseError(int Ident, const System::TVarRec * Args, const 
  40.         int Args_Size) : Sysutils::Exception(Ident, Args, Args_Size) { }
  41.     /* Exception.CreateHelp */ __fastcall EDatabaseError(const System::AnsiString Msg, int AHelpContext
  42.         ) : Sysutils::Exception(Msg, AHelpContext) { }
  43.     /* Exception.CreateFmtHelp */ __fastcall EDatabaseError(const System::AnsiString Msg, const System::TVarRec 
  44.         * Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext
  45.         ) { }
  46.     /* Exception.CreateResHelp */ __fastcall EDatabaseError(int Ident, int AHelpContext) : Sysutils::Exception(
  47.         Ident, AHelpContext) { }
  48.     /* Exception.CreateResFmtHelp */ __fastcall EDatabaseError(int Ident, const System::TVarRec * Args, 
  49.         const int Args_Size, int AHelpContext) : Sysutils::Exception(Ident, Args, Args_Size, AHelpContext)
  50.          { }
  51.     
  52. public:
  53.     /* TObject.Destroy */ __fastcall virtual ~EDatabaseError(void) { }
  54.     
  55. };
  56.  
  57. class __declspec(delphiclass) EDBEngineError;
  58. class __declspec(delphiclass) TDBError;
  59. class __declspec(pascalimplementation) EDBEngineError : public EDatabaseError
  60. {
  61.     typedef EDatabaseError inherited;
  62.     
  63. private:
  64.     Classes::TList* FErrors;
  65.     TDBError* __fastcall GetError(int Index);
  66.     int __fastcall GetErrorCount(void);
  67.     
  68. public:
  69.     __fastcall EDBEngineError(Word ErrorCode);
  70.     __fastcall virtual ~EDBEngineError(void);
  71.     __property int ErrorCount = {read=GetErrorCount, nodefault};
  72.     __property TDBError* Errors[int Index] = {read=GetError};
  73. public:
  74.     /* Exception.CreateFmt */ __fastcall EDBEngineError(const System::AnsiString Msg, const System::TVarRec 
  75.         * Args, const int Args_Size) : Db::EDatabaseError(Msg, Args, Args_Size) { }
  76.     /* Exception.CreateRes */ __fastcall EDBEngineError(int Ident) : Db::EDatabaseError(Ident) { }
  77.     /* Exception.CreateResFmt */ __fastcall EDBEngineError(int Ident, const System::TVarRec * Args, const 
  78.         int Args_Size) : Db::EDatabaseError(Ident, Args, Args_Size) { }
  79.     /* Exception.CreateHelp */ __fastcall EDBEngineError(const System::AnsiString Msg, int AHelpContext
  80.         ) : Db::EDatabaseError(Msg, AHelpContext) { }
  81.     /* Exception.CreateFmtHelp */ __fastcall EDBEngineError(const System::AnsiString Msg, const System::TVarRec 
  82.         * Args, const int Args_Size, int AHelpContext) : Db::EDatabaseError(Msg, Args, Args_Size, AHelpContext
  83.         ) { }
  84.     /* Exception.CreateResHelp */ __fastcall EDBEngineError(int Ident, int AHelpContext) : Db::EDatabaseError(
  85.         Ident, AHelpContext) { }
  86.     /* Exception.CreateResFmtHelp */ __fastcall EDBEngineError(int Ident, const System::TVarRec * Args, 
  87.         const int Args_Size, int AHelpContext) : Db::EDatabaseError(Ident, Args, Args_Size, AHelpContext) { }
  88.         
  89. };
  90.  
  91. class __declspec(pascalimplementation) TDBError : public System::TObject
  92. {
  93.     typedef System::TObject inherited;
  94.     
  95. private:
  96.     Word FErrorCode;
  97.     long FNativeError;
  98.     System::AnsiString FMessage;
  99.     Byte __fastcall GetCategory(void);
  100.     Byte __fastcall GetSubCode(void);
  101.     
  102. public:
  103.     __fastcall TDBError(EDBEngineError* Owner, Word ErrorCode, long NativeError, char * Message);
  104.     __property Byte Category = {read=GetCategory, nodefault};
  105.     __property Word ErrorCode = {read=FErrorCode, nodefault};
  106.     __property Byte SubCode = {read=GetSubCode, nodefault};
  107.     __property System::AnsiString Message = {read=FMessage, nodefault};
  108.     __property long NativeError = {read=FNativeError, nodefault};
  109. public:
  110.     /* TObject.Destroy */ __fastcall virtual ~TDBError(void) { }
  111.     
  112. };
  113.  
  114. typedef void *TLocale;
  115.  
  116. typedef Bde::CBRType __fastcall (__closure *TBDECallbackEvent)(void * CBInfo);
  117.  
  118. class __declspec(delphiclass) TBDECallback;
  119. class __declspec(pascalimplementation) TBDECallback : public System::TObject
  120. {
  121.     typedef System::TObject inherited;
  122.     
  123. private:
  124.     Bde::_hDBIObj *FHandle;
  125.     System::TObject* FOwner;
  126.     CBType FCBType;
  127.     long FOldCBData;
  128.     void *FOldCBBuf;
  129.     Word FOldCBBufLen;
  130.     Bde::pfDBICallBack FOldCBFunc;
  131.     bool FInstalled;
  132.     TBDECallbackEvent FCallbackEvent;
  133.     
  134. protected:
  135.     Bde::CBRType __fastcall Invoke(Bde::CBType CallType, void * CBInfo);
  136.     
  137. public:
  138.     __fastcall TBDECallback(System::TObject* AOwner, Bde::hDBICur Handle, Bde::CBType CBType, void * CBBuf
  139.         , int CBBufSize, TBDECallbackEvent CallbackEvent, bool Chain);
  140.     __fastcall virtual ~TBDECallback(void);
  141. };
  142.  
  143. class __declspec(delphiclass) TSessionList;
  144. class __declspec(delphiclass) TSession;
  145. class __declspec(pascalimplementation) TSessionList : public System::TObject
  146. {
  147.     typedef System::TObject inherited;
  148.     
  149. private:
  150.     Classes::TList* FSessions;
  151.     void __fastcall AddSession(TSession* ASession);
  152.     void __fastcall CloseAll(void);
  153.     int __fastcall GetCount(void);
  154.     TSession* __fastcall GetSession(int Index);
  155.     TSession* __fastcall GetCurrentSession(void);
  156.     TSession* __fastcall GetSessionByName(const System::AnsiString SessionName);
  157.     void __fastcall SetCurrentSession(TSession* Value);
  158.     
  159. public:
  160.     __fastcall TSessionList(void);
  161.     __fastcall virtual ~TSessionList(void);
  162.     __property TSession* CurrentSession = {read=GetCurrentSession, write=SetCurrentSession, nodefault};
  163.         
  164.     TSession* __fastcall FindSession(const System::AnsiString SessionName);
  165.     void __fastcall GetSessionNames(Classes::TStrings* List);
  166.     TSession* __fastcall OpenSession(const System::AnsiString SessionName);
  167.     __property int Count = {read=GetCount, nodefault};
  168.     __property TSession* Sessions[int Index] = {read=GetSession/*, default*/};
  169.     __property TSession* List[System::AnsiString SessionName] = {read=GetSessionByName};
  170. };
  171.  
  172. enum TConfigMode { cmPersistent, cmSession, cmAll };
  173.  
  174. typedef void __fastcall (__closure *TPasswordEvent)(System::TObject* Sender, bool &Continue);
  175.  
  176. enum TDatabaseEvent { dbOpen, dbClose, dbAdd, dbRemove, dbAddAlias, dbDeleteAlias };
  177.  
  178. typedef void __fastcall (__closure *TDatabaseNotifyEvent)(TDatabaseEvent DBEvent, const void *Param)
  179.     ;
  180.  
  181. typedef void __fastcall (*TBDEInitProc)(TSession* Session);
  182.  
  183. enum TTraceFlag { tfQPrepare, tfQExecute, tfError, tfStmt, tfConnect, tfTransact, tfBlob, tfMisc, tfVendor 
  184.     };
  185.  
  186. typedef Set<TTraceFlag, tfQPrepare, tfVendor>  TTraceFlags;
  187.  
  188. typedef DWord __stdcall (*TWriteProc)(System::TObject* Client, char * Data, int Len);
  189.  
  190. typedef System::TObject* __stdcall (*TSMRegProc)(int Handle, char * ClientName, TWriteProc &WriteProc
  191.     , System::TObject* Instance, void * const SignalProc);
  192.  
  193. class __declspec(delphiclass) TDatabase;
  194. class __declspec(pascalimplementation) TSession : public Classes::TComponent
  195. {
  196.     typedef Classes::TComponent inherited;
  197.     
  198. private:
  199.     Bde::_hDBIObj *FHandle;
  200.     bool FDefault;
  201.     Classes::TList* FDatabases;
  202.     Classes::TList* FCallbacks;
  203.     void *FLocale;
  204.     int FClientLib;
  205.     TSMRegProc FSMRegProc;
  206.     TWriteProc FSMWriteProc;
  207.     Bde::TRACEDesc *FSMBuffer;
  208.     System::TObject* FSMClient